package zgrjb.snbq.teach_platform.dto.model;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 建议反馈表 DO
 * 对应数据库表：advice
 * 
 * CREATE TABLE `advice` (
 *     `id` BIGINT UNSIGNED NOT NULL PRIMARY KEY COMMENT '建议ID',
 *     `teacher_id` BIGINT UNSIGNED NOT NULL COMMENT '教师ID',
 *     `class_id` BIGINT UNSIGNED NOT NULL COMMENT '班级ID',
 *     `student_id` BIGINT UNSIGNED NOT NULL COMMENT '学生ID',
 *     `student_name` VARCHAR(64) DEFAULT NULL COMMENT '学生姓名',
 *     `message` VARCHAR(512) DEFAULT NULL COMMENT '建议内容',
 *     `feedback` VARCHAR(512) DEFAULT NULL COMMENT '反馈内容',
 *     `priority` TINYINT DEFAULT 1 COMMENT '优先级：1-低，2-中，3-高',
 *     `status` TINYINT DEFAULT 0 COMMENT '状态：0-待处理，1-已回复，2-已关闭',
 *     `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
 *     `feedback_time` DATETIME DEFAULT NULL COMMENT '反馈时间',
 *     `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
 * );
 */

@Data
@TableName("advice")
public class AdviceDO {

    /**
     * 建议ID
     */
    private Long id;

    /**
     * 教师ID
     */
    @TableField("teacher_id")
    private Long teacherId;

    /**
     * 班级ID
     */
    @TableField("class_id")
    private Long classId;

    /**
     * 学生ID
     */
    @TableField("student_id")
    private Long studentId;

    /**
     * 学生姓名
     */
    @TableField("student_name")
    private String studentName;

    /**
     * 建议内容
     */
    private String message;

    /**
     * 反馈内容
     */
    private String feedback;

    /**
     * 优先级：1-低，2-中，3-高
     */
    private Integer priority;

    /**
     * 状态：0-待处理，1-已回复，2-已关闭
     */
    private Integer status;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 反馈时间
     */
    @TableField("feedback_time")
    private LocalDateTime feedbackTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;
}
